DNS安装配置

        使用 bind 来搭建 DNS 服务,首先安装 bind

1
[root@192 ~]# yum install -y bind

        备份配置文件

1
[root@192 ~]# cp /etc/named.conf /etc/named.conf.bak

        把默认配置文件清空,然后自定义配置

1
2
[root@192 ~]# >/etc/named.conf
[root@192 ~]# vim /etc/named.conf

        加入如下配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
options {
directory "/var/named";
};
zone "." IN {
type hint;
file "named.ca";
};
zone "localhost" IN {
type master;
file "localhost.zone";
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "named.local";
};

        保存配置后,修改其属主

1
2
[root@192 ~]# chown named /etc/named.conf
[root@192 ~]# cd /var/named

        定义根域配置文件,没有 dig 命令先安装

1
[root@192 named]# yum install bind-utils
1
[root@192 named]# dig -t NS .>named.ca

        然后定义本地域配置

1
[root@192 named]# vim localhost.zone

        加入如下内容

1
2
3
4
5
6
7
8
9
@ IN SOA localhost. admin.localhost. (
2017041101
1H
10M
7D
1D
)
@ IN NS localhost.
localhost. IN A 127.0.0.1

        再定以泛解析配置

1
[root@192 named]# vim named.local

        加入如下内容

1
2
3
4
5
6
7
8
9
10
$TTL 86400
@ IN SOA localhost. admin.localhost. (
2017041101
1H
10M
7D
1D
)
@ IN NS localhost.
1 IN PTR localhost

        检测配置是否有问题

1
[root@192 named]# named-checkconf

        检测正解析

1
2
3
4
[root@192 named]# named-checkzone "localhost" /var/named/localhost.zone
/var/named/localhost.zone:2: no TTL specified; using SOA MINTTL instead
zone localhost/IN: loaded serial 2017041101
OK

        检测反解析

1
2
3
[root@192 named]# named-checkzone "0.0.127.in-addr.arpa" /var/named/named.local
zone 0.0.127.in-addr.arpa/IN: loaded serial 2017041101
OK

        生成 rndc.key ,如果没有这个 key , named 是启动不了的。

1
2
3
[root@192 named]# rndc-confgen -r /dev/urandom -a
wrote key file "/etc/rndc.key"
[root@192 named]# chown named:named /etc/rndc.key

        启动 named 服务

1
2
[root@192 named]# /etc/init.d/named start
启动 named: [确定]

        查看是否有 53 端口

1
[root@192 named]# netstat -lnp | grep named

        首先测试正向解析

        接着测试反解析

        现在只是建立了一个本地的域 localhost ,下面增加一个域名(zone)

1
[root@192 named]# vim /etc/named.conf

        增加如下内容

1
2
3
4
5
6
7
8
zone "123.com" IN {
type master;
file "123.com.zone";
};
zone "137.168.192.in-addr.arpa" IN {
type master;
file "192.168.zone";
};

        检测是否有问题

1
[root@192 named]# named-checkconf

        编辑 zone 文件

1
[root@192 named]# vim /var/named/123.com.zone

        检测是否出错

1
2
3
[root@192 named]# named-checkzone "123.com" /var/named/123.com.zone
zone 123.com/IN: loaded serial 2017041101
OK

        编辑反解析文件

1
[root@192 named]# vim /var/named/192.168.zone

        写入如下内容

1
2
3
4
5
6
7
8
9
10
11
12
$TTL 600
@ IN SOA ns.123.com. root.123.com. (
2017041101
1H
10M
7D
1D
)
@ IN NS ns.123.com.
10 IN PTR ns.123.com.
11 IN PTR mail.123.com.
73 IN PTR www.123.com.

        检测是否出错

1
2
3
[root@192 named]# named-checkzone "137.168.192.in-addr.arpa" 192.168.zone
zone 137.168.192.in-addr.arpa/IN: loaded serial 2017041101
OK

        重启 named 服务

1
2
3
[root@192 named]# /etc/init.d/named restart
停止 named:. [确定]
启动 named: [确定]

        测试

1
[root@192 named]# dig @127.0.0.1 www.123.com

1
[root@192 named]# dig @127.0.0.1 -x 192.168.137.11

        123.com 的域配置好后,要想使用它必须把系统里面的 DNS 服务器 IP 设定为这台机器的 IP ,但是这样也会带来一个问题,它只能解析 123.com 的域名,其他域名不能解析,这时候需要给它配置 DNS 转发。

1
[root@192 named]# vim /etc/named.conf

        在 options{} 里面增加

1
2
forward first;
forwarders {8.8.8.8;};

        这两行就是用来配置转发的,该 DNS 服务器不能解析的域名会转发到 8.8.8.8 这个 DNS 服务器上去解析。

        任何服务器都有可能因为某些原因导致不能正常提供服务,所以有必要为 DNS 服务器配置一个备用的,但是这两台服务器需要保证数据的一直性,比如更改主上配置把 www.123.com 解析 IP 更改了,那么备用服务器上也得跟着自动变。

        下面就是配置主从,首先在从服务器上安装 bind

1
[root@KVM ~]# yum install -y bind

        然后拷贝主上的配置文件到从上,这里主服务器 192.168.0.73 ,从服务器 192.168.0.74

        以下操作在主服务器上

1
2
3
4
[root@192 named]# yum -y install openssh-clients
[root@192 named]# scp /etc/named.conf 192.168.0.74:/etc/
[root@192 named]# scp /var/named/localhost.zone 192.168.0.74:/var/named/
[root@192 named]# scp /var/named/named.local 192.168.0.74:/var/named/

        从服务器上,拷贝过来后,修改一下 /etc/named.conf

1
[root@KVM ~]# vim /etc/named.conf

        修改为

        从上生成 rndc.key

1
2
3
[root@KVM ~]# rndc-confgen -r /dev/urandom -a
wrote key file "/etc/rndc.key"
[root@KVM ~]# chown named:named /etc/rndc.key

        从上启动 named

1
2
[root@KVM ~]# /etc/init.d/named start
启动 named: [确定]

        启动成功后会在 /var/named 下生成一个 slaves 目录,这个目录下会有 192.168.zone 和 123.com.zone 这两个文件,内容是和主上的一样的。

        然后在从上测试是否可以解析

1
[root@KVM ~]# dig @127.0.0.1 www.123.com

        下面测试主从同步

        在主 dns 上更改文件

1
[root@192 named]# vim /var/named/123.com.zone

        在最后一行增加

1
123 IN A 1.1.1.1

        另外需要修改一下 第三行的那个数字串,这个是用来做标记的,只有这个数字变化了,才可以一让从自动跟着变,数字只能是变大,不能减小, 把 2017041101 改成 2017041102

        重启主 named 服务

1
2
3
[root@192 named]# /etc/init.d/named restart
停止 named:. [确定]
启动 named: [确定]

        经测试发现一个问题:就是从经常会同步特别慢,这是很要命的。所有需要做一个特殊操作,在主上的 /etc/named.conf 中,123.com 的zone 中增加两行:

1
2
notify yes;
also-notify {192.168.0.74;};